Static timing analysis (STA) is utilized to verify integrated circuit design and analyze circuit performance. In circuit design, one signal may need to arrive at a particular point in a circuit path at a particular time with respect to another signal. A timing test with respect to a pair of timing test points is typically to compare two signals to determine whether a particular requirement on their relative arrival time is met. The difference of the relative arrival time of two signals at the timing test point is referred to as “slack”. Two paths on which signals propagate to arrive at the pair of timing test points (e.g., clock and data pins of a flip-flop circuit) are often referred to as racing paths. Timing of integrated circuits may vary due to the effects of environmental and process variation parameters. In multi-corner static timing analysis, each source of variation to be analyzed is modeled as a parameter having an impact on a delay of a circuit path and/or a circuit. Example sources of variation include, but are not limited to, voltage, metal width, temperature, transistor channel length, transistor threshold voltage, gate oxide thickness, other process controlled performance changing parameters. In one example, each of the parameters is used to model process, environmental conditions, and aging affects in static timing analysis can be toggled between its extreme distribution endpoints. Any specific setting of these parameter values is referred to as a corner. In one example, a parameter may be set to one of its extreme values (e.g., a 3SIGMA extreme value). In such an example, one parameter setting provides a fastest signal propagation checked in a timing analysis and the other corner provides a slowest signal propagation in a timing analysis as a function of this parameter. A static timing analysis may start with each parameter in a set having its values set to a particular extreme, called a starting corner.
Parameters for analysis in timing tests typically can be independent or dependent. In one example, an independent parameter allows for a given path to be evaluated at the corners of that parameter irrespective of the corner settings of other process variable/parameters. However, dependent parameters typically must be evaluated with respect to settings of other parameters. In such an analysis, testing of combinations of multiple parameter settings may occur in a multi-corner timing analysis. In such an analysis with n parameters, there may be 2n extreme corner combinations that require evaluation in order to determine the worst slack across all process corners. As the number of parameters to test increases and the complexity of integrated circuit designs continues to grow, the analysis of the large number of extreme corner combinations for each path of an integrated circuit becomes difficult, if not impossible, to perform in a reasonable amount of time. Reduction of the number of paths requiring full multi-corner analysis at all 2n process corners can reduce the time required to perform a full chip analysis within a reasonable runtime.
One manner to reduce the number of paths to analyze in a multi-corner analysis involves comparing a slack value obtained from a starting corner analysis to an initial threshold, often referred to as a slack cutoff. In one example, a slack cutoff threshold may be determined empirically for a given integrated circuit technology and/or set of environmental conditions (e.g., process variations) that apply to the integrated circuit by identifying an upper bound on the slack change of any path going from a starting corner to any other corner in the process space. If a starting corner slack determined for a path passes a chosen slack cutoff value, it is estimated that the path would pass all corner analyses. Thus, any path that has a starting corner slack that is above a starting corner slack cutoff can be removed from analysis as it will likely pass multi-corner analysis. This can reduce the number of paths for multi-corner analysis. However, in order to reduce the possibility of having paths that potentially have a timing failure from erroneously being removed from analysis, the slack cutoff value is often set at a fairly high value. This, in turn, may lead to an undesirably low reduction in the number of paths that require full multi-corner analysis.